Mybatis配置及增删改除

您所在的位置:网站首页 ibatis collection Mybatis配置及增删改除

Mybatis配置及增删改除

2023-06-01 05:59| 来源: 网络整理| 查看: 265

链接数据库mysql50:进行mysql50的增删查改

1.首先创建Mybatis,配置相关的环境

2.进入界面,打开pom,xml(mysql50mybatis),导入相关的代码块         mysql       mysql-connector-java       8.0.29               org.mybatis       mybatis       3.2.2    

3.新建resources(设置成resources root),将原有的databases.properties和mybatis-config.xml包带入resources包中

4.将databases中的url修改为 driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://192.168.153.149:3306/mysql50 user=root password=root

5.在resours中创建ni.zb.mysql文件夹,在src-main-nj.zb.kb22中创造dao(创建mysql数据库中四张表的接口)和pojo(创建mysql数据库中的4张表)的包 ;在test文件中创建nj.zb.kb22(四张表测试)

6.在resources中创建四个相关的xml表

7.在mybatis中创建四个相关的mapper resource                                    

8.进行StudentTest的增删查改

9.在IStudentDao接口中创建四个增删改查的命令:        public List getAllStudent();     public Integer save(Student student);     public Integer update(Student student);     public Integer delete(Integer id  );

10.在StudentDao.xml中输出:

            select s_id, s_name, s_birth, s_sex from Student                 insert into student(s_id,s_name,s_birth,s_sex)         values (#{s_id},#{s_name},now(),#{s_sex})    

            update student set s_name=#{s_name} where s_id=#{s_id}                 delete from student where s_id=#{s_id}    

11.在test中输出:public class StudentTest {     SqlSessionFactory sqlSessionFactory = null;     SqlSession sqlSession = null;     IStudentDao studentDao = null;

    @Before     public void setUP() {         System.out.println("hello before");         InputStream inputStream = StudentTest.class.getClassLoader()                 .getResourceAsStream("mybatis-config.xml");         SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();         //获取构建工厂         sqlSessionFactory = builder.build(inputStream);         //打开会话         sqlSession = sqlSessionFactory.openSession();

        studentDao = sqlSession.getMapper(IStudentDao.class);     }

    @Test     public void testA(){         List studentList=studentDao.getAllStudent();         for (Student student:              studentList) {             System.out.println(student);         }     } 输出结果:输出Student中所有的列表;

    @Test     public void testStudentSave(){         Student student = new Student();         student.setS_id(9);         student.setS_name("大狗");         student.setS_sex("男");         Integer save = studentDao.save(student);         System.out.println(save);     } 输出结果:增加一个id为9的,name为大狗,sex为男的student用户;

    @Test     public void testStudentUpdate(){         Student student = new Student();         student.setS_id(9);         student.setS_name("zgx");         Integer num = studentDao.update(student);         System.out.println(num);     } 输出结果:将id号为9的名字改为zgx的,并刷新数据,结果为id为9的用户name为zgx;

    @Test     public void testStudentDelete(){         System.out.println(studentDao.delete(9));     } 输出结果:在datagrip中id为9的数据删除,没有id为9的用户

        @After         public void tearDown () {             System.out.println("hello after");             sqlSession.commit();             sqlSession.close();             System.out.println("game over");         }     }

一对一:每条狗有着自己独有的种类 一对多:每个种类的狗有着很多条狗狗

一对一使用Mybatis查询数据 1.首先在原有的的IMasterDao中创建public Master getMasterAndDog(String masterName); 2.在MasterDao.xml中输入                                                                                                                        

select m.id,m.mastername,m.birthday,m.dogid,m.datetime,        d.id did,d.name,d.health,d.love,d.strain,d.datetime from master m left join dog d on m.dogid=d.id where m.mastername=#{mastername}

3.在datagrip中书写语句select m.id,m.mastername,m.birthday,m.dogid,m.datetime,        d.id did,d.name,d.health,d.love,d.strain,d.datetime from master m left join dog d on m.dogid=d.id where m.mastername=#{mastername};(找出master id =1时在dog库中相对应的狗的各项数据)

4.在MasterTest中测试输入的select语句 package bj.zb.kb22; import nj.zb.kb22.dao.IMasterDao; import nj.zb.kb22.pojo.Master; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.io.InputStream; import java.util.List; public class MasterTest {     SqlSessionFactory sqlSessionFactory = null;     SqlSession sqlSession = null;     IMasterDao masterDao = null;     @Before     public void setUP() {         System.out.println("hello before");         InputStream inputStream = DogTest.class.getClassLoader()                 .getResourceAsStream("mybatis-config.xml");         SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();         //获取构建工厂         sqlSessionFactory = builder.build(inputStream);         //打开会话         sqlSession = sqlSessionFactory.openSession();         masterDao = sqlSession.getMapper(IMasterDao.class);     }       @Test     public void testGetMaterAndDog(){         Master masterAndDog = masterDao.getMasterAndDog("安安");         System.out.println(masterAndDog);         System.out.println(masterAndDog.getDog());     }

    @After     public void tearDown() {         System.out.println("hello after");         sqlSession.commit();         sqlSession.close();         System.out.println("game over");     } } @Test publc void testGetMasterAndDog(){ Ms=aster masterAndDog=masterDao.getMasterAndDog("安安") System.out.println(masterAndDog); System.out.println(masterAndDog.getDog()); }

输出结果:与安安id相同在dog类里狗的数据 5.在MasterDaoImpl中实现方法 return null;

一对一:对Master中狗的品种相对应的在dog类中种类相同的狗的数据; 1.在Dogdao中 创建Dog getDogAndDogTypeInfo(String dogName); 2.在DogDao.xml中创建                                 select d.id,d.name,d.health,d.love,d.strain,d.datetime,     s.id s_id,s.name s_name,s.heigh,s.weight,s.`describe`     from dog d left join dogstrain s on d.strain = s.name     where s.name=#{name};     3.在Test中输出: @Test     public void testGetDogAndDogTypeInfo(){         Dog dog = dogDao.getDogAndDogTypeInfo("天狗");         System.out.println(dog);         System.out.println(dog.getDogInfo());

输出结果是:天狗类型所对的dog类中的数据和master中所相对的数据

一对多:通过狗的类型查找对应的狗的数据 1.在mybatis-config.xml中创建   ,进行数据读取 2.在DogStrain接口中创建  DogStrain getDogStrainAndDog(String dogtype); 3.在Dogstrain类中创建相关的类型 4.在DogStraindao中创建                                                                                                                                             select ds.id,ds.name,ds.heigh,ds.weight,ds.`describe`,            d.id did,d.name dname,d.health,d.love,d.strain,d.datetime     from dogStrain ds left join dog d on ds.name = d.strain     where ds.name=#{dogtype} 5.在DogStrainTest中创建: package bj.zb.kb22; import nj.zb.kb22.dao.IDogStrain; import nj.zb.kb22.dao.IMasterDao; import nj.zb.kb22.pojo.Dog; import nj.zb.kb22.pojo.DogStrain; import nj.zb.kb22.pojo.Master; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.io.InputStream; import java.util.List; public class DogStrainTest {     SqlSessionFactory sqlSessionFactory = null;     SqlSession sqlSession = null;     IDogStrain dogStrainDao= null;     @Before     public void setUP() {         System.out.println("hello before");         InputStream inputStream = DogTest.class.getClassLoader()                 .getResourceAsStream("mybatis-config.xml");         SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();         //获取构建工厂         sqlSessionFactory = builder.build(inputStream);         //打开会话         sqlSession = sqlSessionFactory.openSession();         dogStrainDao = sqlSession.getMapper(IDogStrain.class);     }     @Test     public void testA() {         System.out.println(dogStrainDao);         DogStrain dogStrain = dogStrainDao.getDogStrainAndDog("泰迪");         System.out.println(dogStrain);         System.out.println(dogStrain.getDogs());     }     @After     public void tearDown() {         System.out.println("hello after");         sqlSession.commit();         sqlSession.close();         System.out.println("game over");     } }

输出结果:泰迪品种的狗在Master和dog中



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3